package com.naiterui.ehp.bs.patient.dao;

import java.util.List;

import com.naiterui.ehp.bs.patient.domain.PatientFamily;
import com.naiterui.ehp.bs.patient.utils.exception.PatientBusinessException;

/**
 * 家庭成员数据持久接口层
 *
 * @since 2.18
 */
public interface IPatientFamilyDao {
    /**
     * 根据患者id获取家庭成员列表
     * IPatientFamilyDao.getFamilyListByPatientId()
     *
     * @param patientId
     *
     * @return
     *
     * @throws PatientBusinessException
     * @Date 2018年6月1日
     * @since 2.18
     */
    List<PatientFamily> getFamilyListByPatientId(Long patientId) throws PatientBusinessException;

    /**
     * 根据患者id查询本人信息
     * IPatientFamilyDao.getSelfInfo()
     *
     * @param patientId
     *
     * @return
     *
     * @throws PatientBusinessException
     * @Date 2018年6月2日
     * @since 2.18
     */
    PatientFamily getSelfInfo(Long patientId) throws PatientBusinessException;

    /**
     * @param name     姓名
     * @param relation 关系
     *
     * @throws
     * @method getFamilyByNameRelation
     * @author chengqiang
     * @description 根据姓名和关系获取家庭成员信息
     * @date 2018/12/3 14:16
     **/
    PatientFamily getFamilyByNameRelation(String name, Integer relation) throws PatientBusinessException;

    PatientFamily save(PatientFamily patientFamily);

    PatientFamily get(Long id);

    PatientFamily update(PatientFamily patientFamily);
}
